This is a notebook delving into the “bucket”-style, alternative analyses for Studies 1-3. In this analysis, we define three categories, or “buckets,” of mental capacities—BODY capacites, HEART capacities, and MIND capacities. To do this, we take the six items with the strongest positive factor loadings on each of these factors, according to an EFA of adults’ responses. We chose six items per “bucket” in order to have an even number of items in each category.
Study 1
Define buckets
Examine first-order age trends

Examine difference scores
non-integer #successes in a binomial glm!non-integer #successes in a binomial glm!non-integer #successes in a binomial glm!non-integer #successes in a binomial glm!non-integer #successes in a binomial glm!non-integer #successes in a binomial glm!

Examine absolute difference scores
non-integer #successes in a binomial glm!non-integer #successes in a binomial glm!non-integer #successes in a binomial glm!non-integer #successes in a binomial glm!non-integer #successes in a binomial glm!non-integer #successes in a binomial glm!

Study 2
Define buckets
Examine first-order age trends

Examine difference scores

Examine absolute difference scores

LS0tCnRpdGxlOiAiU3R1ZGllcyAxLTM6IEJ1Y2tldCBhbmFseXNlcyIKb3V0cHV0OiAKICBodG1sX25vdGVib29rOgogICAgdG9jOiB0cnVlCiAgICB0b2NfZmxvYXQ6IHRydWUKLS0tCgpUaGlzIGlzIGEgbm90ZWJvb2sgZGVsdmluZyBpbnRvIHRoZSAiYnVja2V0Ii1zdHlsZSwgYWx0ZXJuYXRpdmUgYW5hbHlzZXMgZm9yIFN0dWRpZXMgMS0zLiBJbiB0aGlzIGFuYWx5c2lzLCB3ZSBkZWZpbmUgdGhyZWUgY2F0ZWdvcmllcywgb3IgImJ1Y2tldHMsIiBvZiBtZW50YWwgY2FwYWNpdGllc+KAlF9CT0RZXyBjYXBhY2l0ZXMsIF9IRUFSVF8gY2FwYWNpdGllcywgYW5kIF9NSU5EXyBjYXBhY2l0aWVzLiBUbyBkbyB0aGlzLCB3ZSB0YWtlIHRoZSBzaXggaXRlbXMgd2l0aCB0aGUgc3Ryb25nZXN0IHBvc2l0aXZlIGZhY3RvciBsb2FkaW5ncyBvbiBlYWNoIG9mIHRoZXNlIGZhY3RvcnMsIGFjY29yZGluZyB0byBhbiBFRkEgb2YgYWR1bHRzJyByZXNwb25zZXMuIFdlIGNob3NlIHNpeCBpdGVtcyBwZXIgImJ1Y2tldCIgaW4gb3JkZXIgdG8gaGF2ZSBhbiBldmVuIG51bWJlciBvZiBpdGVtcyBpbiBlYWNoIGNhdGVnb3J5LgoKYGBge3IgZ2xvYmFsX29wdGlvbnMsIGluY2x1ZGUgPSBGfQprbml0cjo6b3B0c19jaHVuayRzZXQoZmlnLndpZHRoID0gMywgZmlnLmFzcCA9IDAuNjcsIAogICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZSA9IEYsIGVjaG8gPSBGKQpgYGAKCmBgYHtyfQpiaW5vbWlhbF9zbW9vdGggPC0gZnVuY3Rpb24oLi4uKSB7CiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImdsbSIsIG1ldGhvZC5hcmdzID0gbGlzdChmYW1pbHkgPSAiYmlub21pYWwiKSwgLi4uKQp9CmBgYAoKYGBge3J9CiMgUlVOIERJTUtJRF9NQU5VU0NSSVBULlJNRCBGSVJTVCEKYGBgCgojIFN0dWR5IDEKCiMjIERlZmluZSBidWNrZXRzCgpgYGB7cn0KZDFfYnVja2V0cyA8LSBsb2FkaW5nc19mdW4oZWZhXzNfZDFfYWQpICU+JQogIG11dGF0ZShmYWN0b3IgPSByZWNvZGVfZmFjdG9yKGZhY3RvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRjIiID0gIkJPRFkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGMSIgPSAiSEVBUlQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGMyIgPSAiTUlORCIpKSAlPiUKICBncm91cF9ieShmYWN0b3IpICU+JQogIHRvcF9uKDYsIGxvYWRpbmcpICU+JQogIHVuZ3JvdXAoKQpgYGAKCmBgYHtyfQpkMV9hbGxfZW5kb3JzZSA8LSBkMV9idWNrZXRzICU+JQogIHNlbGVjdCgtbG9hZGluZykgJT4lCiAgbGVmdF9qb2luKGQxX2FsbCkgJT4lCiAgbXV0YXRlKGVuZG9yc2UgPSBpZmVsc2UocmVzcG9uc2VfbnVtID4gMCwgMSwgMCkpICU+JQogIGdyb3VwX2J5KGFnZV9ncm91cCwgc3ViaWQsIGNoYXJhY3RlciwgZmFjdG9yKSAlPiUKICBzdW1tYXJpc2UobiA9IGxlbmd0aChlbmRvcnNlKSwKICAgICAgICAgICAgc3VtX2VuZG9yc2UgPSBzdW0oZW5kb3JzZSwgbmEucm0gPSBUKSwKICAgICAgICAgICAgcHJvcF9lbmRvcnNlID0gbWVhbihlbmRvcnNlLCBuYS5ybSA9IFQpKSAlPiUKICB1bmdyb3VwKCkKYGBgCgojIyBFeGFtaW5lIGZpcnN0LW9yZGVyIGFnZSB0cmVuZHMKCmBgYHtyfQpkMV9hbGxfZW5kb3JzZV9ib290IDwtIGQxX2FsbF9lbmRvcnNlICU+JQogIGdyb3VwX2J5KGFnZV9ncm91cCwgY2hhcmFjdGVyLCBmYWN0b3IpICU+JQogIG11bHRpX2Jvb3Rfc3RhbmRhcmQoY29sID0gInByb3BfZW5kb3JzZSIpICU+JQogIHVuZ3JvdXAoKQpgYGAKCmBgYHtyfQpmaWdTVVBQMV9wbG90IDwtIGQxX2FsbF9lbmRvcnNlICU+JQogIGZpbHRlcihhZ2VfZ3JvdXAgPT0gImNoaWxkcmVuIikgJT4lCiAgbGVmdF9qb2luKGQxXzc5ICU+JSBkaXN0aW5jdChzdWJpZCwgYWdlKSkgJT4lCiAgZmlsdGVyKCFpcy5uYShhZ2UpKSAlPiUKICBnZ3Bsb3QoYWVzKHggPSBhZ2UsIHkgPSBwcm9wX2VuZG9yc2UsIAogICAgICAgICAgICAgZmlsbCA9IGNoYXJhY3RlciwgY29sb3IgPSBjaGFyYWN0ZXIsIHNoYXBlID0gY2hhcmFjdGVyKSkgKwogIGZhY2V0X3dyYXAofiBmYWN0b3IpICsKICBnZW9tX2ppdHRlcihhbHBoYSA9IDAuNCwgd2lkdGggPSAwLCBoZWlnaHQgPSAwLjAzKSArCiAgYmlub21pYWxfc21vb3RoKGFlcyh3ZWlnaHQgPSBuKSwgc2hvdy5sZWdlbmQgPSBGKSArCiAgIyBnZW9tX3Ntb290aChtZXRob2QgPSAiZ2xtIiwKICAjICAgICAgICAgICAgIG1ldGhvZC5hcmdzID0gbGlzdChmYW1pbHkgPSAiYmlub21pYWwiKSkgKwogIGdlb21fcG9pbnQoZGF0YSA9IGQxX2FsbF9lbmRvcnNlICU+JSBmaWx0ZXIoYWdlX2dyb3VwID09ICJhZHVsdHMiKSwKICAgICAgICAgICAgIGFlcyh4ID0gMTEpLCBhbHBoYSA9IDAuNCwgc2hvdy5sZWdlbmQgPSBGLAogICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXJkb2RnZShkb2RnZS53aWR0aCA9IDAuNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaml0dGVyLmhlaWdodCA9IDAuMDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGppdHRlci53aWR0aCA9IDAuMjUpKSArCiAgZ2VvbV9wb2ludHJhbmdlKGRhdGEgPSBkMV9hbGxfZW5kb3JzZV9ib290ICU+JSBmaWx0ZXIoYWdlX2dyb3VwID09ICJhZHVsdHMiKSwKICAgICAgICAgICAgICAgICAgYWVzKHggPSAxMSwgeSA9IG1lYW4sIHltaW4gPSBjaV9sb3dlciwgeW1heCA9IGNpX3VwcGVyKSwKICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDAuNSksIHNob3cubGVnZW5kID0gRiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiYmxhY2siLCBmYXR0ZW4gPSA1KSArCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IGMoNzoxMSksIAogICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKHBhc3RlMCg3OjEwLCAieSIpLCAiYWR1bHRzIikpICsKICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDEsIDEvNiksIGxhYmVscyA9IDA6NikgKwogIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXMgPSBjKCIjZmI5YTk5IiwgIiMxZjc4YjQiKSkgKwogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoIiNmYjlhOTkiLCAiIzFmNzhiNCIpKSArCiAgc2NhbGVfc2hhcGVfbWFudWFsKHZhbHVlcyA9IGMoMjEsIDIyKSkgKwogIHRoZW1lX2J3KCkgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIGhqdXN0ID0gMSwgdmp1c3QgPSAxKSkgKwogIGd1aWRlcyhjb2xvciA9IGd1aWRlX2xlZ2VuZChvdmVycmlkZS5hZXMgPSBsaXN0KGFscGhhID0gMSwgc2l6ZSA9IDMpKSkgKwogIGxhYnMoeSA9ICJudW1iZXIgb2YgaXRlbXMgZW5kb3JzZWQgKG91dCBvZiA2KSIpCmBgYAoKYGBge3IsIGluY2x1ZGUgPSBULCBmaWcud2lkdGggPSA2LCBmaWcuYXNwID0gMC43fQpmaWdTVVBQMV93aXRoX2NhcHRpb24gPC0gYWRkX3N1YihmaWdTVVBQMV9wbG90LCBzdHJfd3JhcCgiRmlndXJlIFNVUFAxOiBOdW1iZXIgb2YgbWVudGFsIGNhcGFjaXR5IGl0ZW1zIChvdXQgb2YgNikgZW5kb3JzZWQgaW4gZWFjaCBkb21haW4gKEJPRFksIEhFQVJULCBhbmQgTUlORCkgYnkgNy0gdG8gOS15ZWFyLW9sZCBjaGlsZHJlbiBhbmQgYWR1bHRzIGluIFN0dWR5IDEsIGluIHdoaWNoIGVhY2ggcGFydGljaXBhbnQgYXNzZXNzZWQgNDAgbWVudGFsIGNhcGFjaXRpZXMgZm9yIG9uZSBvZiB0d28gdGFyZ2V0IGNoYXJhY3RlcnM6IGEgYmVldGxlIChwaW5rIGNpcmNsZXMpIG9yIGEgcm9ib3QgKGJsdWUgc3F1YXJlcykuIFdlIGRlZmluZWQgZWFjaCBkb21haW4gYnkgdGhlIDYgaXRlbXMgdGhhdCBsb2FkZWQgdGhlIG1vc3QgcG9zaXRpdmVseSBvbiB0aGUgY29ycmVzcG9uZGluZyBmYWN0b3IgaW4gYW4gZXhwbG9yYXRvcnkgZmFjdG9yIGFuYWx5c2lzIG9mIGFkdWx0cycgcmVzcG9uc2VzLCBhbmQgd2UgY29uc2lkZXJlZCByZXNwb25zZXMgb2YgZWl0aGVyICd5ZXMnIG9yICdraW5kYScgKGJ1dCBub3QgJ25vJykgdG8gYmUgZW5kb3JzZW1lbnRzLiBMaW5lcyBjb3JyZXNwb25kIHRvIGxvZ2lzdGljIHJlZ3Jlc3Npb25zIGNvbnNpZGVyaW5nIGNoaWxkcmVuJ3Mgc2NvcmVzIGFsb25lLiBFcnJvciBiYXJzIGFyZSBib290c3RyYXBwZWQgOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWxzIG9uIGFkdWx0cycgc2NvcmVzLiIsIDEzMCksIHggPSAwLCBoanVzdCA9IDApCmdnZHJhdyhmaWdTVVBQMV93aXRoX2NhcHRpb24pCmBgYAoKIyMgRXhhbWluZSBkaWZmZXJlbmNlIHNjb3JlcwoKYGBge3J9CmQxX2FsbF9lbmRvcnNlX2RpZmYgPC0gZDFfYWxsX2VuZG9yc2UgJT4lCiAgc2VsZWN0KGFnZV9ncm91cCwgc3ViaWQsIGNoYXJhY3RlciwgZmFjdG9yLCBwcm9wX2VuZG9yc2UpICU+JQogIHNwcmVhZChmYWN0b3IsIHByb3BfZW5kb3JzZSkgJT4lCiAgZ3JvdXBfYnkoYWdlX2dyb3VwLCBzdWJpZCwgY2hhcmFjdGVyKSAlPiUKICBtdXRhdGUoYEJPRFkgbWludXMgSEVBUlRgID0gQk9EWSAtIEhFQVJULAogICAgICAgICBgQk9EWSBtaW51cyBNSU5EYCA9IEJPRFkgLSBNSU5ELAogICAgICAgICBgTUlORCBtaW51cyBIRUFSVGAgPSBNSU5EIC0gSEVBUlQpICU+JQogIHVuZ3JvdXAoKSAlPiUgCiAgc2VsZWN0KC1jKEJPRFksIEhFQVJULCBNSU5EKSkgJT4lCiAgZ2F0aGVyKGNvbXBhcmlzb24sIGRpZmZlcmVuY2UsIGNvbnRhaW5zKCJtaW4iKSkgJT4lCiAgbXV0YXRlKGRpZmZfMDEgPSAoZGlmZmVyZW5jZSArIDEpLzIsCiAgICAgICAgIGRpZmZfMDFfYWJzID0gYWJzKGRpZmZlcmVuY2UpKQpgYGAKCmBgYHtyfQpkMV9hbGxfZW5kb3JzZV9kaWZmX2Jvb3QgPC0gZDFfYWxsX2VuZG9yc2VfZGlmZiAlPiUKICBncm91cF9ieShhZ2VfZ3JvdXAsIGNoYXJhY3RlciwgY29tcGFyaXNvbikgJT4lCiAgbXVsdGlfYm9vdF9zdGFuZGFyZChjb2wgPSAiZGlmZl8wMSIpICU+JQogIHVuZ3JvdXAoKQpgYGAKCmBgYHtyfQpmaWdTVVBQMl9wbG90IDwtIGQxX2FsbF9lbmRvcnNlX2RpZmYgJT4lCiAgZmlsdGVyKGFnZV9ncm91cCA9PSAiY2hpbGRyZW4iKSAlPiUKICBsZWZ0X2pvaW4oZDFfNzkgJT4lIGRpc3RpbmN0KHN1YmlkLCBhZ2UpKSAlPiUKICBmaWx0ZXIoIWlzLm5hKGFnZSkpICU+JQogIG11dGF0ZSh5ID0gKGRpZmZlcmVuY2UgKyA2KS8xMikgJT4lCiAgZ2dwbG90KGFlcyh4ID0gYWdlLCB5ID0gZGlmZl8wMSwgCiAgICAgICAgICAgICBmaWxsID0gY2hhcmFjdGVyLCBjb2xvciA9IGNoYXJhY3Rlciwgc2hhcGUgPSBjaGFyYWN0ZXIpKSArCiAgZmFjZXRfd3JhcCh+IGNvbXBhcmlzb24pICsKICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSAwLjUsIGx0eSA9IDIpICsKICBnZW9tX2ppdHRlcihhbHBoYSA9IDAuNCwgd2lkdGggPSAwLCBoZWlnaHQgPSAwLjAxNSkgKwogIGJpbm9taWFsX3Ntb290aChhZXMod2VpZ2h0ID0gMSksIHNob3cubGVnZW5kID0gRikgKwogICMgZ2VvbV9zbW9vdGgobWV0aG9kID0gImdsbSIsCiAgIyAgICAgICAgICAgICBtZXRob2QuYXJncyA9IGxpc3QoZmFtaWx5ID0gImJpbm9taWFsIikpICsKICBnZW9tX3BvaW50KGRhdGEgPSBkMV9hbGxfZW5kb3JzZV9kaWZmICU+JSBmaWx0ZXIoYWdlX2dyb3VwID09ICJhZHVsdHMiKSwKICAgICAgICAgICAgIGFlcyh4ID0gMTEpLCBhbHBoYSA9IDAuNCwgc2hvdy5sZWdlbmQgPSBGLAogICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXJkb2RnZShkb2RnZS53aWR0aCA9IDAuNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaml0dGVyLmhlaWdodCA9IDAuMDE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqaXR0ZXIud2lkdGggPSAwLjI1KSkgKwogIGdlb21fcG9pbnRyYW5nZShkYXRhID0gZDFfYWxsX2VuZG9yc2VfZGlmZl9ib290ICU+JSBmaWx0ZXIoYWdlX2dyb3VwID09ICJhZHVsdHMiKSwKICAgICAgICAgICAgICAgICAgYWVzKHggPSAxMSwgeSA9IG1lYW4sIHltaW4gPSBjaV9sb3dlciwgeW1heCA9IGNpX3VwcGVyKSwKICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDAuNSksIHNob3cubGVnZW5kID0gRiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiYmxhY2siLCBmYXR0ZW4gPSA1KSArCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IGMoNzoxMSksIAogICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKHBhc3RlMCg3OjEwLCAieSIpLCAiYWR1bHRzIikpICsKICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDEsIDEvMTIpLCBsYWJlbHMgPSBzZXEoLTYsIDYsIDEpKSArCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IGMoIiNmYjlhOTkiLCAiIzFmNzhiNCIpKSArCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYygiI2ZiOWE5OSIsICIjMWY3OGI0IikpICsKICBzY2FsZV9zaGFwZV9tYW51YWwodmFsdWVzID0gYygyMSwgMjIpKSArCiAgdGhlbWVfYncoKSArCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgaGp1c3QgPSAxLCB2anVzdCA9IDEpKSArCiAgZ3VpZGVzKGNvbG9yID0gZ3VpZGVfbGVnZW5kKG92ZXJyaWRlLmFlcyA9IGxpc3QoYWxwaGEgPSAxLCBzaXplID0gMykpKSArCiAgbGFicyh5ID0gImRpZmZlcmVuY2VzIGluIG51bWJlciBvZiBpdGVtcyBlbmRvcnNlZCAob3V0IG9mIDYpIikKYGBgCgpgYGB7ciwgaW5jbHVkZSA9IFQsIGZpZy53aWR0aCA9IDYsIGZpZy5hc3AgPSAwLjd9CmZpZ1NVUFAyX3dpdGhfY2FwdGlvbiA8LSBhZGRfc3ViKGZpZ1NVUFAyX3Bsb3QsIHN0cl93cmFwKCJGaWd1cmUgU1VQUDI6IERpZmZlcmVuY2VzIGluIHRoZSBudW1iZXIgb2YgbWVudGFsIGNhcGFjaXR5IGl0ZW1zIChvdXQgb2YgNikgZW5kb3JzZWQgYWNyb3NzIHRoZSB0aHJlZSBkb21haW5zIChCT0RZIG1pbnVzIEhFQVJULCBCT0RZIG1pbnVzIE1JTkQsIGFuZCBNSU5EIG1pbnVzIEhFQVJUKSBieSA3LSB0byA5LXllYXItb2xkIGNoaWxkcmVuIGFuZCBhZHVsdHMgaW4gU3R1ZHkgMSwgaW4gd2hpY2ggZWFjaCBwYXJ0aWNpcGFudCBhc3Nlc3NlZCA0MCBtZW50YWwgY2FwYWNpdGllcyBmb3Igb25lIG9mIHR3byB0YXJnZXQgY2hhcmFjdGVyczogYSBiZWV0bGUgKHBpbmsgY2lyY2xlcykgb3IgYSByb2JvdCAoYmx1ZSBzcXVhcmVzKS4gV2UgZGVmaW5lZCBlYWNoIGRvbWFpbiBieSB0aGUgNiBpdGVtcyB0aGF0IGxvYWRlZCB0aGUgbW9zdCBwb3NpdGl2ZWx5IG9uIHRoZSBjb3JyZXNwb25kaW5nIGZhY3RvciBpbiBhbiBleHBsb3JhdG9yeSBmYWN0b3IgYW5hbHlzaXMgb2YgYWR1bHRzJyByZXNwb25zZXMsIGFuZCB3ZSBjb25zaWRlcmVkIHJlc3BvbnNlcyBvZiBlaXRoZXIgJ3llcycgb3IgJ2tpbmRhJyAoYnV0IG5vdCAnbm8nKSB0byBiZSBlbmRvcnNlbWVudHMuIExpbmVzIGNvcnJlc3BvbmQgdG8gbG9naXN0aWMgcmVncmVzc2lvbnMgY29uc2lkZXJpbmcgY2hpbGRyZW4ncyBzY29yZXMgYWxvbmUuIEVycm9yIGJhcnMgYXJlIGJvb3RzdHJhcHBlZCA5NSUgY29uZmlkZW5jZSBpbnRlcnZhbHMgb24gYWR1bHRzJyBzY29yZXMuIiwgMTMwKSwgeCA9IDAsIGhqdXN0ID0gMCkKZ2dkcmF3KGZpZ1NVUFAyX3dpdGhfY2FwdGlvbikKYGBgCgojIyBFeGFtaW5lIGFic29sdXRlIGRpZmZlcmVuY2Ugc2NvcmVzCgpgYGB7cn0KZDFfYWxsX2VuZG9yc2VfZGlmZl9hYnNfYm9vdCA8LSBkMV9hbGxfZW5kb3JzZV9kaWZmICU+JQogIGdyb3VwX2J5KGFnZV9ncm91cCwgY2hhcmFjdGVyLCBjb21wYXJpc29uKSAlPiUKICBtdWx0aV9ib290X3N0YW5kYXJkKGNvbCA9ICJkaWZmXzAxX2FicyIpICU+JQogIHVuZ3JvdXAoKQpgYGAKCmBgYHtyfQpmaWdTVVBQM19wbG90IDwtIGQxX2FsbF9lbmRvcnNlX2RpZmYgJT4lCiAgZmlsdGVyKGFnZV9ncm91cCA9PSAiY2hpbGRyZW4iKSAlPiUKICBsZWZ0X2pvaW4oZDFfNzkgJT4lIGRpc3RpbmN0KHN1YmlkLCBhZ2UpKSAlPiUKICBmaWx0ZXIoIWlzLm5hKGFnZSkpICU+JQogIG11dGF0ZSh5ID0gKGRpZmZlcmVuY2UgKyA2KS8xMikgJT4lCiAgZ2dwbG90KGFlcyh4ID0gYWdlLCB5ID0gZGlmZl8wMV9hYnMsIAogICAgICAgICAgICAgZmlsbCA9IGNoYXJhY3RlciwgY29sb3IgPSBjaGFyYWN0ZXIsIHNoYXBlID0gY2hhcmFjdGVyKSkgKwogIGZhY2V0X3dyYXAofiBjb21wYXJpc29uKSArCiAgZ2VvbV9qaXR0ZXIoYWxwaGEgPSAwLjQsIHdpZHRoID0gMCwgaGVpZ2h0ID0gMC4wMTUpICsKICBiaW5vbWlhbF9zbW9vdGgoYWVzKHdlaWdodCA9IDEpLCBzaG93LmxlZ2VuZCA9IEYpICsKICAjIGdlb21fc21vb3RoKG1ldGhvZCA9ICJnbG0iLAogICMgICAgICAgICAgICAgbWV0aG9kLmFyZ3MgPSBsaXN0KGZhbWlseSA9ICJiaW5vbWlhbCIpKSArCiAgZ2VvbV9wb2ludChkYXRhID0gZDFfYWxsX2VuZG9yc2VfZGlmZiAlPiUgZmlsdGVyKGFnZV9ncm91cCA9PSAiYWR1bHRzIiksCiAgICAgICAgICAgICBhZXMoeCA9IDExKSwgYWxwaGEgPSAwLjQsIHNob3cubGVnZW5kID0gRiwKICAgICAgICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb25faml0dGVyZG9kZ2UoZG9kZ2Uud2lkdGggPSAwLjUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGppdHRlci5oZWlnaHQgPSAwLjAxNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaml0dGVyLndpZHRoID0gMC4yNSkpICsKICBnZW9tX3BvaW50cmFuZ2UoZGF0YSA9IGQxX2FsbF9lbmRvcnNlX2RpZmZfYWJzX2Jvb3QgJT4lIAogICAgICAgICAgICAgICAgICAgIGZpbHRlcihhZ2VfZ3JvdXAgPT0gImFkdWx0cyIpLAogICAgICAgICAgICAgICAgICBhZXMoeCA9IDExLCB5ID0gbWVhbiwgeW1pbiA9IGNpX2xvd2VyLCB5bWF4ID0gY2lfdXBwZXIpLAogICAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uX2RvZGdlKHdpZHRoID0gMC41KSwgc2hvdy5sZWdlbmQgPSBGLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJibGFjayIsIGZhdHRlbiA9IDUpICsKICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gYyg3OjExKSwgCiAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IGMocGFzdGUwKDc6MTAsICJ5IiksICJhZHVsdHMiKSkgKwogIHNjYWxlX3lfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgMSwgMS82KSwgbGFiZWxzID0gc2VxKDAsIDYsIDEpKSArCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IGMoIiNmYjlhOTkiLCAiIzFmNzhiNCIpKSArCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYygiI2ZiOWE5OSIsICIjMWY3OGI0IikpICsKICBzY2FsZV9zaGFwZV9tYW51YWwodmFsdWVzID0gYygyMSwgMjIpKSArCiAgdGhlbWVfYncoKSArCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgaGp1c3QgPSAxLCB2anVzdCA9IDEpKSArCiAgZ3VpZGVzKGNvbG9yID0gZ3VpZGVfbGVnZW5kKG92ZXJyaWRlLmFlcyA9IGxpc3QoYWxwaGEgPSAxLCBzaXplID0gMykpKSArCiAgbGFicyh5ID0gImFzYm9sdXRlIGRpZmZlcmVuY2VzIGluIG51bWJlciBvZiBpdGVtcyBlbmRvcnNlZCAob3V0IG9mIDYpIikKYGBgCgpgYGB7ciwgaW5jbHVkZSA9IFQsIGZpZy53aWR0aCA9IDYsIGZpZy5hc3AgPSAwLjd9CmZpZ1NVUFAzX3dpdGhfY2FwdGlvbiA8LSBhZGRfc3ViKGZpZ1NVUFAzX3Bsb3QsIHN0cl93cmFwKCJGaWd1cmUgU1VQUDI6IEFic29sdXRlIGRpZmZlcmVuY2VzIGluIHRoZSBudW1iZXIgb2YgbWVudGFsIGNhcGFjaXR5IGl0ZW1zIChvdXQgb2YgNikgZW5kb3JzZWQgYWNyb3NzIHRoZSB0aHJlZSBkb21haW5zIChCT0RZIG1pbnVzIEhFQVJULCBCT0RZIG1pbnVzIE1JTkQsIGFuZCBNSU5EIG1pbnVzIEhFQVJUKSBieSA3LSB0byA5LXllYXItb2xkIGNoaWxkcmVuIGFuZCBhZHVsdHMgaW4gU3R1ZHkgMSwgaW4gd2hpY2ggZWFjaCBwYXJ0aWNpcGFudCBhc3Nlc3NlZCA0MCBtZW50YWwgY2FwYWNpdGllcyBmb3Igb25lIG9mIHR3byB0YXJnZXQgY2hhcmFjdGVyczogYSBiZWV0bGUgKHBpbmsgY2lyY2xlcykgb3IgYSByb2JvdCAoYmx1ZSBzcXVhcmVzKS4gV2UgZGVmaW5lZCBlYWNoIGRvbWFpbiBieSB0aGUgNiBpdGVtcyB0aGF0IGxvYWRlZCB0aGUgbW9zdCBwb3NpdGl2ZWx5IG9uIHRoZSBjb3JyZXNwb25kaW5nIGZhY3RvciBpbiBhbiBleHBsb3JhdG9yeSBmYWN0b3IgYW5hbHlzaXMgb2YgYWR1bHRzJyByZXNwb25zZXMsIGFuZCB3ZSBjb25zaWRlcmVkIHJlc3BvbnNlcyBvZiBlaXRoZXIgJ3llcycgb3IgJ2tpbmRhJyAoYnV0IG5vdCAnbm8nKSB0byBiZSBlbmRvcnNlbWVudHMuIExpbmVzIGNvcnJlc3BvbmQgdG8gbG9naXN0aWMgcmVncmVzc2lvbnMgY29uc2lkZXJpbmcgY2hpbGRyZW4ncyBzY29yZXMgYWxvbmUuIEVycm9yIGJhcnMgYXJlIGJvb3RzdHJhcHBlZCA5NSUgY29uZmlkZW5jZSBpbnRlcnZhbHMgb24gYWR1bHRzJyBzY29yZXMuIiwgMTMwKSwgeCA9IDAsIGhqdXN0ID0gMCkKZ2dkcmF3KGZpZ1NVUFAzX3dpdGhfY2FwdGlvbikKYGBgCgoKIyBTdHVkeSAyCgojIyBEZWZpbmUgYnVja2V0cwoKYGBge3J9CmQyX2J1Y2tldHMgPC0gbG9hZGluZ3NfZnVuKGVmYV8zX2QyX2FkKSAlPiUKICBtdXRhdGUoZmFjdG9yID0gcmVjb2RlX2ZhY3RvcihmYWN0b3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkYxIiA9ICJCT0RZIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRjIiID0gIkhFQVJUIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRjMiID0gIk1JTkQiKSkgJT4lCiAgZ3JvdXBfYnkoZmFjdG9yKSAlPiUKICB0b3Bfbig2LCBsb2FkaW5nKSAlPiUKICB1bmdyb3VwKCkKYGBgCgpgYGB7cn0KZDJfYWxsX2VuZG9yc2UgPC0gZDJfYnVja2V0cyAlPiUKICBzZWxlY3QoLWxvYWRpbmcpICU+JQogIGxlZnRfam9pbihkMl9hbGwpICU+JQogIG11dGF0ZShlbmRvcnNlID0gaWZlbHNlKHJlc3BvbnNlX251bSA+IDAsIDEsIDApKSAlPiUKICBsZWZ0X2pvaW4oZDJfYW5pbSAlPiUgZGlzdGluY3QoY2hhcmFjdGVyLCBhbmltX2luYW4pKSAlPiUKICBncm91cF9ieShhZ2VfZ3JvdXAsIHN1YmlkLCBhbmltX2luYW4sIGNoYXJhY3RlciwgZmFjdG9yKSAlPiUKICBzdW1tYXJpc2UobiA9IGxlbmd0aChlbmRvcnNlKSwKICAgICAgICAgICAgc3VtX2VuZG9yc2UgPSBzdW0oZW5kb3JzZSwgbmEucm0gPSBUKSwKICAgICAgICAgICAgcHJvcF9lbmRvcnNlID0gbWVhbihlbmRvcnNlLCBuYS5ybSA9IFQpKSAlPiUKICB1bmdyb3VwKCkKYGBgCgojIyBFeGFtaW5lIGZpcnN0LW9yZGVyIGFnZSB0cmVuZHMKCmBgYHtyfQpkMl9hbGxfZW5kb3JzZV9ib290X2FuaW0gPC0gZDJfYWxsX2VuZG9yc2UgJT4lCiAgZ3JvdXBfYnkoYWdlX2dyb3VwLCBhbmltX2luYW4sIGZhY3RvcikgJT4lCiAgbXVsdGlfYm9vdF9zdGFuZGFyZChjb2wgPSAicHJvcF9lbmRvcnNlIikgJT4lCiAgdW5ncm91cCgpCmBgYAoKYGBge3J9CmZpZ1NVUFA0YV9wbG90IDwtIGQyX2FsbF9lbmRvcnNlICU+JQogIGZpbHRlcihhZ2VfZ3JvdXAgIT0gImFkdWx0cyIpICU+JQogIGxlZnRfam9pbihkMl83OSAlPiUgZGlzdGluY3Qoc3ViaWQsIGFnZSkgJT4lCiAgICAgICAgICAgICAgZnVsbF9qb2luKGQyXzQ2ICU+JSBkaXN0aW5jdChzdWJpZCwgYWdlKSkpICU+JQogIGZpbHRlcighaXMubmEoYWdlKSkgJT4lCiAgZ2dwbG90KGFlcyh4ID0gYWdlLCB5ID0gcHJvcF9lbmRvcnNlLCAKICAgICAgICAgICAgIGZpbGwgPSBhbmltX2luYW4sIGNvbG9yID0gYW5pbV9pbmFuKSkgKwogIGZhY2V0X3dyYXAofiBmYWN0b3IpICsKICBnZW9tX2ppdHRlcihhbHBoYSA9IDAuNCwgd2lkdGggPSAwLCBoZWlnaHQgPSAwLjAzKSArCiAgYmlub21pYWxfc21vb3RoKGFlcyh3ZWlnaHQgPSBuKSwgc2hvdy5sZWdlbmQgPSBGLCBhbHBoYSA9IDAuMDUpICsKICAjIGdlb21fc21vb3RoKG1ldGhvZCA9ICJnbG0iLAogICMgICAgICAgICAgICAgbWV0aG9kLmFyZ3MgPSBsaXN0KGZhbWlseSA9ICJiaW5vbWlhbCIpKSArCiAgZ2VvbV9wb2ludChkYXRhID0gZDJfYWxsX2VuZG9yc2UgJT4lIGZpbHRlcihhZ2VfZ3JvdXAgPT0gImFkdWx0cyIpLAogICAgICAgICAgICAgYWVzKHggPSAxMiksIGFscGhhID0gMC40LCBzaG93LmxlZ2VuZCA9IEYsCiAgICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uX2ppdHRlcmRvZGdlKGRvZGdlLndpZHRoID0gMC41LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqaXR0ZXIuaGVpZ2h0ID0gMC4wMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaml0dGVyLndpZHRoID0gMC4yNSkpICsKICBnZW9tX3BvaW50cmFuZ2UoZGF0YSA9IGQyX2FsbF9lbmRvcnNlX2Jvb3RfYW5pbSAlPiUgZmlsdGVyKGFnZV9ncm91cCA9PSAiYWR1bHRzIiksCiAgICAgICAgICAgICAgICAgIGFlcyh4ID0gMTIsIHkgPSBtZWFuLCB5bWluID0gY2lfbG93ZXIsIHltYXggPSBjaV91cHBlciksCiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb25fZG9kZ2Uod2lkdGggPSAwLjUpLCBzaG93LmxlZ2VuZCA9IEYsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gImJsYWNrIiwgZmF0dGVuID0gNSkgKwogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBjKDQ6MTAsIDEyKSwgCiAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IGMocGFzdGUwKDQ6MTAsICJ5IiksICJhZHVsdHMiKSkgKwogIHNjYWxlX3lfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgMSwgMS82KSwgbGFiZWxzID0gMDo2KSArCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IGMoInNsYXRlZ3JleSIsICJmaXJlYnJpY2sxIiksIG5hLnZhbHVlID0gImdyYXkiKSArCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYygic2xhdGVncmV5IiwgImZpcmVicmljazEiKSwgbmEudmFsdWUgPSAiZ3JheSIpICsKICB0aGVtZV9idygpICsKICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdCA9IDEsIHZqdXN0ID0gMSkpICsKICBndWlkZXMoY29sb3IgPSBndWlkZV9sZWdlbmQob3ZlcnJpZGUuYWVzID0gbGlzdChhbHBoYSA9IDEsIHNpemUgPSAzKSkpICsKICBsYWJzKHkgPSAibnVtYmVyIG9mIGl0ZW1zIGVuZG9yc2VkIChvdXQgb2YgNikiKQpgYGAKCmBgYHtyfQpkMl9hbGxfZW5kb3JzZV9ib290IDwtIGQyX2FsbF9lbmRvcnNlICU+JQogIGdyb3VwX2J5KGFnZV9ncm91cCwgY2hhcmFjdGVyLCBmYWN0b3IpICU+JQogIG11bHRpX2Jvb3Rfc3RhbmRhcmQoY29sID0gInByb3BfZW5kb3JzZSIpICU+JQogIHVuZ3JvdXAoKQpgYGAKCmBgYHtyfQpmaWdTVVBQNGJfcGxvdCA8LSBkMl9hbGxfZW5kb3JzZSAlPiUKICBmaWx0ZXIoYWdlX2dyb3VwICE9ICJhZHVsdHMiKSAlPiUKICBsZWZ0X2pvaW4oZDJfNzkgJT4lIGRpc3RpbmN0KHN1YmlkLCBhZ2UpICU+JQogICAgICAgICAgICAgIGZ1bGxfam9pbihkMl80NiAlPiUgZGlzdGluY3Qoc3ViaWQsIGFnZSkpKSAlPiUKICBmaWx0ZXIoIWlzLm5hKGFnZSkpICU+JQogIGdncGxvdChhZXMoeCA9IGFnZSwgeSA9IHByb3BfZW5kb3JzZSwgCiAgICAgICAgICAgICBmaWxsID0gY2hhcmFjdGVyLCBjb2xvciA9IGNoYXJhY3RlcikpICsKICBmYWNldF93cmFwKH4gZmFjdG9yKSArCiAgZ2VvbV9qaXR0ZXIoYWxwaGEgPSAwLjQsIHdpZHRoID0gMCwgaGVpZ2h0ID0gMC4wMykgKwogIGJpbm9taWFsX3Ntb290aChhZXMod2VpZ2h0ID0gbiksIHNob3cubGVnZW5kID0gRiwgYWxwaGEgPSAwLjA1KSArCiAgIyBnZW9tX3Ntb290aChtZXRob2QgPSAiZ2xtIiwKICAjICAgICAgICAgICAgIG1ldGhvZC5hcmdzID0gbGlzdChmYW1pbHkgPSAiYmlub21pYWwiKSkgKwogIGdlb21fcG9pbnQoZGF0YSA9IGQyX2FsbF9lbmRvcnNlICU+JSBmaWx0ZXIoYWdlX2dyb3VwID09ICJhZHVsdHMiKSwKICAgICAgICAgICAgIGFlcyh4ID0gMTIpLCBhbHBoYSA9IDAuNCwgc2hvdy5sZWdlbmQgPSBGLAogICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXJkb2RnZShkb2RnZS53aWR0aCA9IDAuNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaml0dGVyLmhlaWdodCA9IDAuMDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGppdHRlci53aWR0aCA9IDAuMjUpKSArCiAgZ2VvbV9wb2ludHJhbmdlKGRhdGEgPSBkMl9hbGxfZW5kb3JzZV9ib290ICU+JSBmaWx0ZXIoYWdlX2dyb3VwID09ICJhZHVsdHMiKSwKICAgICAgICAgICAgICAgICAgYWVzKHggPSAxMiwgeSA9IG1lYW4sIHltaW4gPSBjaV9sb3dlciwgeW1heCA9IGNpX3VwcGVyKSwKICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDAuNSksIHNob3cubGVnZW5kID0gRiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiYmxhY2siLCBmYXR0ZW4gPSA1KSArCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IGMoNDoxMCwgMTIpLCAKICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gYyhwYXN0ZTAoNDoxMCwgInkiKSwgImFkdWx0cyIpKSArCiAgc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCAxLCAxLzYpLCBsYWJlbHMgPSAwOjYpICsKICBzY2FsZV9jb2xvcl9icmV3ZXIocGFsZXR0ZSA9ICJQYWlyZWQiKSArCiAgc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZSA9ICJQYWlyZWQiKSArCiAgdGhlbWVfYncoKSArCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgaGp1c3QgPSAxLCB2anVzdCA9IDEpKSArCiAgZ3VpZGVzKGNvbG9yID0gZ3VpZGVfbGVnZW5kKG92ZXJyaWRlLmFlcyA9IGxpc3QoYWxwaGEgPSAxLCBzaXplID0gMykpKSArCiAgbGFicyh5ID0gIm51bWJlciBvZiBpdGVtcyBlbmRvcnNlZCAob3V0IG9mIDYpIikKYGBgCgpgYGB7cn0KZmlnU1VQUDRfcGxvdHMgPC0gcGxvdF9ncmlkKGZpZ1NVUFA0YV9wbG90LCBmaWdTVVBQNGJfcGxvdCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuY29sID0gMSwgbGFiZWxzID0gIkFVVE8iKQpgYGAKCmBgYHtyLCBpbmNsdWRlID0gVCwgZmlnLndpZHRoID0gNiwgZmlnLmFzcCA9IDAuN30KZmlnU1VQUDRfd2l0aF9jYXB0aW9uIDwtIGFkZF9zdWIoZmlnU1VQUDRfcGxvdHMsIHN0cl93cmFwKCJGaWd1cmUgU1VQUDQ6IE51bWJlciBvZiBtZW50YWwgY2FwYWNpdHkgaXRlbXMgKG91dCBvZiA2KSBlbmRvcnNlZCBpbiBlYWNoIGRvbWFpbiAoQk9EWSwgSEVBUlQsIGFuZCBNSU5EKSBieSA0LSB0byA5LXllYXItb2xkIGNoaWxkcmVuIGFuZCBhZHVsdHMgaW4gU3R1ZHkgMiwgaW4gd2hpY2ggZWFjaCBwYXJ0aWNpcGFudCBhc3Nlc3NlZCAyMCBtZW50YWwgY2FwYWNpdGllcyBmb3Igb25lIG9mIG5pbmUgdGFyZ2V0IGNoYXJhY3RlcnMuIFdlIGRlZmluZWQgZWFjaCBkb21haW4gYnkgdGhlIDYgaXRlbXMgdGhhdCBsb2FkZWQgdGhlIG1vc3QgcG9zaXRpdmVseSBvbiB0aGUgY29ycmVzcG9uZGluZyBmYWN0b3IgaW4gYW4gZXhwbG9yYXRvcnkgZmFjdG9yIGFuYWx5c2lzIG9mIGFkdWx0cycgcmVzcG9uc2VzLCBhbmQgd2UgY29uc2lkZXJlZCByZXNwb25zZXMgb2YgZWl0aGVyICd5ZXMnIG9yICdraW5kYScgKGJ1dCBub3QgJ25vJykgdG8gYmUgZW5kb3JzZW1lbnRzLiBMaW5lcyBjb3JyZXNwb25kIHRvIGxvZ2lzdGljIHJlZ3Jlc3Npb25zIGNvbnNpZGVyaW5nIGNoaWxkcmVuJ3Mgc2NvcmVzIGFsb25lLiBFcnJvciBiYXJzIGFyZSBib290c3RyYXBwZWQgOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWxzIG9uIGFkdWx0cycgc2NvcmVzLiIsIDEzMiksIHggPSAwLCBoanVzdCA9IDApCmdnZHJhdyhmaWdTVVBQNF93aXRoX2NhcHRpb24pCmBgYAoKIyMgRXhhbWluZSBkaWZmZXJlbmNlIHNjb3JlcwoKYGBge3J9CmQyX2FsbF9lbmRvcnNlX2RpZmYgPC0gZDJfYWxsX2VuZG9yc2UgJT4lCiAgc2VsZWN0KGFnZV9ncm91cCwgc3ViaWQsIGNoYXJhY3RlciwgZmFjdG9yLCBwcm9wX2VuZG9yc2UpICU+JQogIGxlZnRfam9pbihkMl9hbmltICU+JSBkaXN0aW5jdChjaGFyYWN0ZXIsIGFuaW1faW5hbikpICU+JQogIHNwcmVhZChmYWN0b3IsIHByb3BfZW5kb3JzZSkgJT4lCiAgZ3JvdXBfYnkoYWdlX2dyb3VwLCBzdWJpZCwgY2hhcmFjdGVyKSAlPiUKICBtdXRhdGUoYEJPRFkgbWludXMgSEVBUlRgID0gQk9EWSAtIEhFQVJULAogICAgICAgICBgQk9EWSBtaW51cyBNSU5EYCA9IEJPRFkgLSBNSU5ELAogICAgICAgICBgTUlORCBtaW51cyBIRUFSVGAgPSBNSU5EIC0gSEVBUlQpICU+JQogIHVuZ3JvdXAoKSAlPiUgCiAgc2VsZWN0KC1jKEJPRFksIEhFQVJULCBNSU5EKSkgJT4lCiAgZ2F0aGVyKGNvbXBhcmlzb24sIGRpZmZlcmVuY2UsIGNvbnRhaW5zKCJtaW4iKSkgJT4lCiAgbXV0YXRlKGRpZmZfMDEgPSAoZGlmZmVyZW5jZSArIDEpLzIsCiAgICAgICAgIGRpZmZfMDFfYWJzID0gYWJzKGRpZmZlcmVuY2UpKQpgYGAKCmBgYHtyfQpkMl9hbGxfZW5kb3JzZV9kaWZmX2Jvb3RfYW5pbSA8LSBkMl9hbGxfZW5kb3JzZV9kaWZmICU+JQogIGdyb3VwX2J5KGFnZV9ncm91cCwgYW5pbV9pbmFuLCBjb21wYXJpc29uKSAlPiUKICBtdWx0aV9ib290X3N0YW5kYXJkKGNvbCA9ICJkaWZmXzAxIikgJT4lCiAgdW5ncm91cCgpCmBgYAoKYGBge3J9CmZpZ1NVUFA1YV9wbG90IDwtIGQyX2FsbF9lbmRvcnNlX2RpZmYgJT4lCiAgZmlsdGVyKGFnZV9ncm91cCAhPSAiYWR1bHRzIikgJT4lCiAgbGVmdF9qb2luKGQyXzc5ICU+JSBkaXN0aW5jdChzdWJpZCwgYWdlKSAlPiUKICAgICAgICAgICAgICBmdWxsX2pvaW4oZDJfNDYgJT4lIGRpc3RpbmN0KHN1YmlkLCBhZ2UpKSkgJT4lCiAgZmlsdGVyKCFpcy5uYShhZ2UpKSAlPiUKICBtdXRhdGUoeSA9IChkaWZmZXJlbmNlICsgNikvMTIpICU+JQogIGdncGxvdChhZXMoeCA9IGFnZSwgeSA9IGRpZmZfMDEsIAogICAgICAgICAgICAgZmlsbCA9IGFuaW1faW5hbiwgY29sb3IgPSBhbmltX2luYW4pKSArCiAgZmFjZXRfd3JhcCh+IGNvbXBhcmlzb24pICsKICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSAwLjUsIGx0eSA9IDIpICsKICBnZW9tX2ppdHRlcihhbHBoYSA9IDAuNCwgd2lkdGggPSAwLCBoZWlnaHQgPSAwLjAxNSkgKwogIGJpbm9taWFsX3Ntb290aChhZXMod2VpZ2h0ID0gMSksIHNob3cubGVnZW5kID0gRiwgYWxwaGEgPSAwLjA1KSArCiAgIyBnZW9tX3Ntb290aChtZXRob2QgPSAiZ2xtIiwKICAjICAgICAgICAgICAgIG1ldGhvZC5hcmdzID0gbGlzdChmYW1pbHkgPSAiYmlub21pYWwiKSkgKwogIGdlb21fcG9pbnQoZGF0YSA9IGQyX2FsbF9lbmRvcnNlX2RpZmYgJT4lIGZpbHRlcihhZ2VfZ3JvdXAgPT0gImFkdWx0cyIpLAogICAgICAgICAgICAgYWVzKHggPSAxMiksIGFscGhhID0gMC40LCBzaG93LmxlZ2VuZCA9IEYsCiAgICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uX2ppdHRlcmRvZGdlKGRvZGdlLndpZHRoID0gMC41LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqaXR0ZXIuaGVpZ2h0ID0gMC4wMTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGppdHRlci53aWR0aCA9IDAuMjUpKSArCiAgZ2VvbV9wb2ludHJhbmdlKGRhdGEgPSBkMl9hbGxfZW5kb3JzZV9kaWZmX2Jvb3RfYW5pbSAlPiUgCiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKGFnZV9ncm91cCA9PSAiYWR1bHRzIiksCiAgICAgICAgICAgICAgICAgIGFlcyh4ID0gMTIsIHkgPSBtZWFuLCB5bWluID0gY2lfbG93ZXIsIHltYXggPSBjaV91cHBlciksCiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb25fZG9kZ2Uod2lkdGggPSAwLjUpLCBzaG93LmxlZ2VuZCA9IEYsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gImJsYWNrIiwgZmF0dGVuID0gNSkgKwogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBjKDQ6MTAsIDEyKSwgCiAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IGMocGFzdGUwKDQ6MTAsICJ5IiksICJhZHVsdHMiKSkgKwogIHNjYWxlX3lfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgMSwgMS8xMiksIGxhYmVscyA9IHNlcSgtNiwgNiwgMSkpICsKICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gYygic2xhdGVncmV5IiwgImZpcmVicmljazEiKSwgbmEudmFsdWUgPSAiZ3JheSIpICsKICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCJzbGF0ZWdyZXkiLCAiZmlyZWJyaWNrMSIpLCBuYS52YWx1ZSA9ICJncmF5IikgKwogIHRoZW1lX2J3KCkgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIGhqdXN0ID0gMSwgdmp1c3QgPSAxKSkgKwogIGd1aWRlcyhjb2xvciA9IGd1aWRlX2xlZ2VuZChvdmVycmlkZS5hZXMgPSBsaXN0KGFscGhhID0gMSwgc2l6ZSA9IDMpKSkgKwogIGxhYnMoeSA9ICJkaWZmZXJlbmNlcyBpbiBudW1iZXIgb2YgaXRlbXMgZW5kb3JzZWQgKG91dCBvZiA2KSIpCmBgYAoKYGBge3J9CmQyX2FsbF9lbmRvcnNlX2RpZmZfYm9vdCA8LSBkMl9hbGxfZW5kb3JzZV9kaWZmICU+JQogIGdyb3VwX2J5KGFnZV9ncm91cCwgY2hhcmFjdGVyLCBjb21wYXJpc29uKSAlPiUKICBtdWx0aV9ib290X3N0YW5kYXJkKGNvbCA9ICJkaWZmXzAxIikgJT4lCiAgdW5ncm91cCgpCmBgYAoKYGBge3J9CmZpZ1NVUFA1Yl9wbG90IDwtIGQyX2FsbF9lbmRvcnNlX2RpZmYgJT4lCiAgZmlsdGVyKGFnZV9ncm91cCAhPSAiYWR1bHRzIikgJT4lCiAgbGVmdF9qb2luKGQyXzc5ICU+JSBkaXN0aW5jdChzdWJpZCwgYWdlKSAlPiUKICAgICAgICAgICAgICBmdWxsX2pvaW4oZDJfNDYgJT4lIGRpc3RpbmN0KHN1YmlkLCBhZ2UpKSkgJT4lCiAgZmlsdGVyKCFpcy5uYShhZ2UpKSAlPiUKICBtdXRhdGUoeSA9IChkaWZmZXJlbmNlICsgNikvMTIpICU+JQogIGdncGxvdChhZXMoeCA9IGFnZSwgeSA9IGRpZmZfMDEsIAogICAgICAgICAgICAgZmlsbCA9IGNoYXJhY3RlciwgY29sb3IgPSBjaGFyYWN0ZXIpKSArCiAgZmFjZXRfd3JhcCh+IGNvbXBhcmlzb24pICsKICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSAwLjUsIGx0eSA9IDIpICsKICBnZW9tX2ppdHRlcihhbHBoYSA9IDAuNCwgd2lkdGggPSAwLCBoZWlnaHQgPSAwLjAxNSkgKwogIGJpbm9taWFsX3Ntb290aChhZXMod2VpZ2h0ID0gMSksIHNob3cubGVnZW5kID0gRiwgYWxwaGEgPSAwLjA1KSArCiAgIyBnZW9tX3Ntb290aChtZXRob2QgPSAiZ2xtIiwKICAjICAgICAgICAgICAgIG1ldGhvZC5hcmdzID0gbGlzdChmYW1pbHkgPSAiYmlub21pYWwiKSkgKwogIGdlb21fcG9pbnQoZGF0YSA9IGQyX2FsbF9lbmRvcnNlX2RpZmYgJT4lIGZpbHRlcihhZ2VfZ3JvdXAgPT0gImFkdWx0cyIpLAogICAgICAgICAgICAgYWVzKHggPSAxMiksIGFscGhhID0gMC40LCBzaG93LmxlZ2VuZCA9IEYsCiAgICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uX2ppdHRlcmRvZGdlKGRvZGdlLndpZHRoID0gMC41LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqaXR0ZXIuaGVpZ2h0ID0gMC4wMTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGppdHRlci53aWR0aCA9IDAuMjUpKSArCiAgZ2VvbV9wb2ludHJhbmdlKGRhdGEgPSBkMl9hbGxfZW5kb3JzZV9kaWZmX2Jvb3QgJT4lIGZpbHRlcihhZ2VfZ3JvdXAgPT0gImFkdWx0cyIpLAogICAgICAgICAgICAgICAgICBhZXMoeCA9IDEyLCB5ID0gbWVhbiwgeW1pbiA9IGNpX2xvd2VyLCB5bWF4ID0gY2lfdXBwZXIpLAogICAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uX2RvZGdlKHdpZHRoID0gMC41KSwgc2hvdy5sZWdlbmQgPSBGLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJibGFjayIsIGZhdHRlbiA9IDUpICsKICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gYyg0OjEwLCAxMiksIAogICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKHBhc3RlMCg0OjEwLCAieSIpLCAiYWR1bHRzIikpICsKICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDEsIDEvMTIpLCBsYWJlbHMgPSBzZXEoLTYsIDYsIDEpKSArCiAgc2NhbGVfY29sb3JfYnJld2VyKHBhbGV0dGUgPSAiUGFpcmVkIikgKwogIHNjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGUgPSAiUGFpcmVkIikgKwogIHRoZW1lX2J3KCkgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIGhqdXN0ID0gMSwgdmp1c3QgPSAxKSkgKwogIGd1aWRlcyhjb2xvciA9IGd1aWRlX2xlZ2VuZChvdmVycmlkZS5hZXMgPSBsaXN0KGFscGhhID0gMSwgc2l6ZSA9IDMpKSkgKwogIGxhYnMoeSA9ICJkaWZmZXJlbmNlcyBpbiBudW1iZXIgb2YgaXRlbXMgZW5kb3JzZWQgKG91dCBvZiA2KSIpCmBgYAoKYGBge3J9CmZpZ1NVUFA1X3Bsb3RzIDwtIHBsb3RfZ3JpZChmaWdTVVBQNWFfcGxvdCwgZmlnU1VQUDViX3Bsb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuY29sID0gMSwgbGFiZWxzID0gIkFVVE8iKQpgYGAKCgpgYGB7ciwgaW5jbHVkZSA9IFQsIGZpZy53aWR0aCA9IDYsIGZpZy5hc3AgPSAwLjd9CmZpZ1NVUFA1X3dpdGhfY2FwdGlvbiA8LSBhZGRfc3ViKGZpZ1NVUFA1X3Bsb3RzLCBzdHJfd3JhcCgiRmlndXJlIFNVUFA1OiBEaWZmZXJlbmNlcyBpbiB0aGUgbnVtYmVyIG9mIG1lbnRhbCBjYXBhY2l0eSBpdGVtcyAob3V0IG9mIDYpIGVuZG9yc2VkIGFjcm9zcyB0aGUgdGhyZWUgZG9tYWlucyAoQk9EWSBtaW51cyBIRUFSVCwgQk9EWSBtaW51cyBNSU5ELCBhbmQgTUlORCBtaW51cyBIRUFSVCkgYnkgNC0gdG8gOS15ZWFyLW9sZCBjaGlsZHJlbiBhbmQgYWR1bHRzIGluIFN0dWR5IDEsIGluIHdoaWNoIGVhY2ggcGFydGljaXBhbnQgYXNzZXNzZWQgMjAgbWVudGFsIGNhcGFjaXRpZXMgZm9yIG9uZSBvZiBuaW5lIHRhcmdldCBjaGFyYWN0ZXJzLiBXZSBkZWZpbmVkIGVhY2ggZG9tYWluIGJ5IHRoZSA2IGl0ZW1zIHRoYXQgbG9hZGVkIHRoZSBtb3N0IHBvc2l0aXZlbHkgb24gdGhlIGNvcnJlc3BvbmRpbmcgZmFjdG9yIGluIGFuIGV4cGxvcmF0b3J5IGZhY3RvciBhbmFseXNpcyBvZiBhZHVsdHMnIHJlc3BvbnNlcywgYW5kIHdlIGNvbnNpZGVyZWQgcmVzcG9uc2VzIG9mIGVpdGhlciAneWVzJyBvciAna2luZGEnIChidXQgbm90ICdubycpIHRvIGJlIGVuZG9yc2VtZW50cy4gTGluZXMgY29ycmVzcG9uZCB0byBsb2dpc3RpYyByZWdyZXNzaW9ucyBjb25zaWRlcmluZyBjaGlsZHJlbidzIHNjb3JlcyBhbG9uZS4gRXJyb3IgYmFycyBhcmUgYm9vdHN0cmFwcGVkIDk1JSBjb25maWRlbmNlIGludGVydmFscyBvbiBhZHVsdHMnIHNjb3Jlcy4iLCAxMzIpLCB4ID0gMCwgaGp1c3QgPSAwKQpnZ2RyYXcoZmlnU1VQUDVfd2l0aF9jYXB0aW9uKQpgYGAKCiMjIEV4YW1pbmUgYWJzb2x1dGUgZGlmZmVyZW5jZSBzY29yZXMKCmBgYHtyfQpkMl9hbGxfZW5kb3JzZV9kaWZmX2Fic19ib290X2FuaW0gPC0gZDJfYWxsX2VuZG9yc2VfZGlmZiAlPiUKICBsZWZ0X2pvaW4oZDJfYW5pbSAlPiUgZGlzdGluY3QoY2hhcmFjdGVyLCBhbmltX2luYW4pKSAlPiUKICBncm91cF9ieShhZ2VfZ3JvdXAsIGFuaW1faW5hbiwgY29tcGFyaXNvbikgJT4lCiAgbXVsdGlfYm9vdF9zdGFuZGFyZChjb2wgPSAiZGlmZl8wMV9hYnMiKSAlPiUKICB1bmdyb3VwKCkKYGBgCgpgYGB7cn0KZmlnU1VQUDZhX3Bsb3QgPC0gZDJfYWxsX2VuZG9yc2VfZGlmZiAlPiUKICBmaWx0ZXIoYWdlX2dyb3VwICE9ICJhZHVsdHMiKSAlPiUKICBsZWZ0X2pvaW4oZDJfNzkgJT4lIGRpc3RpbmN0KHN1YmlkLCBhZ2UpICU+JQogICAgICAgICAgICAgIGZ1bGxfam9pbihkMl80NiAlPiUgZGlzdGluY3Qoc3ViaWQsIGFnZSkpKSAlPiUKICBmaWx0ZXIoIWlzLm5hKGFnZSkpICU+JQogIGdncGxvdChhZXMoeCA9IGFnZSwgeSA9IGRpZmZfMDFfYWJzLCAKICAgICAgICAgICAgIGZpbGwgPSBhbmltX2luYW4sIGNvbG9yID0gYW5pbV9pbmFuKSkgKwogIGZhY2V0X3dyYXAofiBjb21wYXJpc29uKSArCiAgZ2VvbV9qaXR0ZXIoYWxwaGEgPSAwLjQsIHdpZHRoID0gMCwgaGVpZ2h0ID0gMC4wMTUpICsKICBiaW5vbWlhbF9zbW9vdGgoYWVzKHdlaWdodCA9IDEpLCBzaG93LmxlZ2VuZCA9IEYsIGFscGhhID0gMC4wNSkgKwogICMgZ2VvbV9zbW9vdGgobWV0aG9kID0gImdsbSIsCiAgIyAgICAgICAgICAgICBtZXRob2QuYXJncyA9IGxpc3QoZmFtaWx5ID0gImJpbm9taWFsIikpICsKICBnZW9tX3BvaW50KGRhdGEgPSBkMl9hbGxfZW5kb3JzZV9kaWZmICU+JSBmaWx0ZXIoYWdlX2dyb3VwID09ICJhZHVsdHMiKSwKICAgICAgICAgICAgIGFlcyh4ID0gMTIpLCBhbHBoYSA9IDAuNCwgc2hvdy5sZWdlbmQgPSBGLAogICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXJkb2RnZShkb2RnZS53aWR0aCA9IDAuNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaml0dGVyLmhlaWdodCA9IDAuMDE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqaXR0ZXIud2lkdGggPSAwLjI1KSkgKwogIGdlb21fcG9pbnRyYW5nZShkYXRhID0gZDJfYWxsX2VuZG9yc2VfZGlmZl9hYnNfYm9vdF9hbmltICU+JSAKICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoYWdlX2dyb3VwID09ICJhZHVsdHMiKSwKICAgICAgICAgICAgICAgICAgYWVzKHggPSAxMiwgeSA9IG1lYW4sIHltaW4gPSBjaV9sb3dlciwgeW1heCA9IGNpX3VwcGVyKSwKICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDAuNSksIHNob3cubGVnZW5kID0gRiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiYmxhY2siLCBmYXR0ZW4gPSA1KSArCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IGMoNDoxMCwgMTIpLCAKICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gYyhwYXN0ZTAoNDoxMCwgInkiKSwgImFkdWx0cyIpKSArCiAgc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCAxLCAxLzYpLCBsYWJlbHMgPSBzZXEoMCwgNiwgMSkpICsKICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gYygic2xhdGVncmV5IiwgImZpcmVicmljazEiKSwgbmEudmFsdWUgPSAiZ3JheSIpICsKICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCJzbGF0ZWdyZXkiLCAiZmlyZWJyaWNrMSIpLCBuYS52YWx1ZSA9ICJncmF5IikgKwogIHRoZW1lX2J3KCkgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIGhqdXN0ID0gMSwgdmp1c3QgPSAxKSkgKwogIGd1aWRlcyhjb2xvciA9IGd1aWRlX2xlZ2VuZChvdmVycmlkZS5hZXMgPSBsaXN0KGFscGhhID0gMSwgc2l6ZSA9IDMpKSkgKwogIGxhYnMoeSA9ICJhc2JvbHV0ZSBkaWZmZXJlbmNlcyBpbiBudW1iZXIgb2YgaXRlbXMgZW5kb3JzZWQgKG91dCBvZiA2KSIpCmBgYAoKCmBgYHtyfQpkMl9hbGxfZW5kb3JzZV9kaWZmX2Fic19ib290IDwtIGQyX2FsbF9lbmRvcnNlX2RpZmYgJT4lCiAgZ3JvdXBfYnkoYWdlX2dyb3VwLCBjaGFyYWN0ZXIsIGNvbXBhcmlzb24pICU+JQogIG11bHRpX2Jvb3Rfc3RhbmRhcmQoY29sID0gImRpZmZfMDFfYWJzIikgJT4lCiAgdW5ncm91cCgpCmBgYAoKYGBge3J9CmZpZ1NVUFA2Yl9wbG90IDwtIGQyX2FsbF9lbmRvcnNlX2RpZmYgJT4lCiAgZmlsdGVyKGFnZV9ncm91cCAhPSAiYWR1bHRzIikgJT4lCiAgbGVmdF9qb2luKGQyXzc5ICU+JSBkaXN0aW5jdChzdWJpZCwgYWdlKSAlPiUKICAgICAgICAgICAgICBmdWxsX2pvaW4oZDJfNDYgJT4lIGRpc3RpbmN0KHN1YmlkLCBhZ2UpKSkgJT4lCiAgZmlsdGVyKCFpcy5uYShhZ2UpKSAlPiUKICBnZ3Bsb3QoYWVzKHggPSBhZ2UsIHkgPSBkaWZmXzAxX2FicywgCiAgICAgICAgICAgICBmaWxsID0gY2hhcmFjdGVyLCBjb2xvciA9IGNoYXJhY3RlcikpICsKICBmYWNldF93cmFwKH4gY29tcGFyaXNvbikgKwogIGdlb21faml0dGVyKGFscGhhID0gMC40LCB3aWR0aCA9IDAsIGhlaWdodCA9IDAuMDE1KSArCiAgYmlub21pYWxfc21vb3RoKGFlcyh3ZWlnaHQgPSAxKSwgc2hvdy5sZWdlbmQgPSBGLCBhbHBoYSA9IDAuMDUpICsKICAjIGdlb21fc21vb3RoKG1ldGhvZCA9ICJnbG0iLAogICMgICAgICAgICAgICAgbWV0aG9kLmFyZ3MgPSBsaXN0KGZhbWlseSA9ICJiaW5vbWlhbCIpKSArCiAgZ2VvbV9wb2ludChkYXRhID0gZDJfYWxsX2VuZG9yc2VfZGlmZiAlPiUgZmlsdGVyKGFnZV9ncm91cCA9PSAiYWR1bHRzIiksCiAgICAgICAgICAgICBhZXMoeCA9IDEyKSwgYWxwaGEgPSAwLjQsIHNob3cubGVnZW5kID0gRiwKICAgICAgICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb25faml0dGVyZG9kZ2UoZG9kZ2Uud2lkdGggPSAwLjUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGppdHRlci5oZWlnaHQgPSAwLjAxNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaml0dGVyLndpZHRoID0gMC4yNSkpICsKICBnZW9tX3BvaW50cmFuZ2UoZGF0YSA9IGQyX2FsbF9lbmRvcnNlX2RpZmZfYWJzX2Jvb3QgJT4lIAogICAgICAgICAgICAgICAgICAgIGZpbHRlcihhZ2VfZ3JvdXAgPT0gImFkdWx0cyIpLAogICAgICAgICAgICAgICAgICBhZXMoeCA9IDEyLCB5ID0gbWVhbiwgeW1pbiA9IGNpX2xvd2VyLCB5bWF4ID0gY2lfdXBwZXIpLAogICAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uX2RvZGdlKHdpZHRoID0gMC41KSwgc2hvdy5sZWdlbmQgPSBGLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJibGFjayIsIGZhdHRlbiA9IDUpICsKICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gYyg0OjEwLCAxMiksIAogICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKHBhc3RlMCg0OjEwLCAieSIpLCAiYWR1bHRzIikpICsKICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDEsIDEvNiksIGxhYmVscyA9IHNlcSgwLCA2LCAxKSkgKwogIHNjYWxlX2NvbG9yX2JyZXdlcihwYWxldHRlID0gIlBhaXJlZCIpICsKICBzY2FsZV9maWxsX2JyZXdlcihwYWxldHRlID0gIlBhaXJlZCIpICsKICB0aGVtZV9idygpICsKICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdCA9IDEsIHZqdXN0ID0gMSkpICsKICBndWlkZXMoY29sb3IgPSBndWlkZV9sZWdlbmQob3ZlcnJpZGUuYWVzID0gbGlzdChhbHBoYSA9IDEsIHNpemUgPSAzKSkpICsKICBsYWJzKHkgPSAiYXNib2x1dGUgZGlmZmVyZW5jZXMgaW4gbnVtYmVyIG9mIGl0ZW1zIGVuZG9yc2VkIChvdXQgb2YgNikiKQpgYGAKCmBgYHtyfQpmaWdTVVBQNl9wbG90cyA8LSBwbG90X2dyaWQoZmlnU1VQUDZhX3Bsb3QsIGZpZ1NVUFA2Yl9wbG90LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmNvbCA9IDEsIGxhYmVscyA9ICJBVVRPIikKYGBgCgpgYGB7ciwgaW5jbHVkZSA9IFQsIGZpZy53aWR0aCA9IDYsIGZpZy5hc3AgPSAwLjd9CmZpZ1NVUFA2X3dpdGhfY2FwdGlvbiA8LSBhZGRfc3ViKGZpZ1NVUFA2X3Bsb3RzLCBzdHJfd3JhcCgiRmlndXJlIFNVUFA2OiBBYnNvbHV0ZSBkaWZmZXJlbmNlcyBpbiB0aGUgbnVtYmVyIG9mIG1lbnRhbCBjYXBhY2l0eSBpdGVtcyAob3V0IG9mIDYpIGVuZG9yc2VkIGFjcm9zcyB0aGUgdGhyZWUgZG9tYWlucyAoQk9EWSBtaW51cyBIRUFSVCwgQk9EWSBtaW51cyBNSU5ELCBhbmQgTUlORCBtaW51cyBIRUFSVCkgYnkgNC0gdG8gOS15ZWFyLW9sZCBjaGlsZHJlbiBhbmQgYWR1bHRzIGluIFN0dWR5IDIsIGluIHdoaWNoIGVhY2ggcGFydGljaXBhbnQgYXNzZXNzZWQgMjAgbWVudGFsIGNhcGFjaXRpZXMgZm9yIG9uZSBvZiBuaW5lIHRhcmdldCBjaGFyYWN0ZXJzLiBXZSBkZWZpbmVkIGVhY2ggZG9tYWluIGJ5IHRoZSA2IGl0ZW1zIHRoYXQgbG9hZGVkIHRoZSBtb3N0IHBvc2l0aXZlbHkgb24gdGhlIGNvcnJlc3BvbmRpbmcgZmFjdG9yIGluIGFuIGV4cGxvcmF0b3J5IGZhY3RvciBhbmFseXNpcyBvZiBhZHVsdHMnIHJlc3BvbnNlcywgYW5kIHdlIGNvbnNpZGVyZWQgcmVzcG9uc2VzIG9mIGVpdGhlciAneWVzJyBvciAna2luZGEnIChidXQgbm90ICdubycpIHRvIGJlIGVuZG9yc2VtZW50cy4gTGluZXMgY29ycmVzcG9uZCB0byBsb2dpc3RpYyByZWdyZXNzaW9ucyBjb25zaWRlcmluZyBjaGlsZHJlbidzIHNjb3JlcyBhbG9uZS4gRXJyb3IgYmFycyBhcmUgYm9vdHN0cmFwcGVkIDk1JSBjb25maWRlbmNlIGludGVydmFscyBvbiBhZHVsdHMnIHNjb3Jlcy4iLCAxMzApLCB4ID0gMCwgaGp1c3QgPSAwKQpnZ2RyYXcoZmlnU1VQUDZfd2l0aF9jYXB0aW9uKQpgYGAKCg==